package com.animee.day11.utils;
import com.animee.day11.ResourceTable;
import com.animee.day11.bean.FilmTypeBean;
import ohos.aafwk.ability.AbilitySlice;
import ohos.agp.components.*;

import java.util.List;

/**
 *1写一个类，继承BaseItemProvider
 *2.重写四个方法：处理将item布局再listcontainer当中显示，并且将内容显示再布局中
 *3.通过构造方法，将页面对象和集合对象传入进来
 * */
public class FilmTypeProvider extends BaseItemProvider{
    private AbilitySlice context;   //页面对象
    private List<FilmTypeBean.FilmTypesDTO>mDatas;  //集合对象

    public FilmTypeProvider(AbilitySlice context, List<FilmTypeBean.FilmTypesDTO> mDatas) {
        this.context = context;
        this.mDatas = mDatas;
    }
    @Override   //返回滑动列表的长度
    public int getCount() {
        return mDatas.size();
    }
    @Override    //获取每一条的数据内容
    public Object getItem(int i) {
        return mDatas.get(i);
    }
    @Override     // 获取指定位置的view的id
    public long getItemId(int i) {
        return i;
    }
    // 将item的布局，给转换成java对象Component，并且加载到listcontainer当中，设置数据
    @Override
    public Component getComponent(int i, Component component, ComponentContainer root) {
        if (component == null) {  //说明现在没有被复用的布局，都要新建布局
            //将布局转换层对象  LayoutScatter:将布局文件转换成Component对象的类
            component = LayoutScatter.getInstance(context)
                    .parse(ResourceTable.Layout_item_filmtype,root,false);
        }
        Text typeTv = component.findComponentById(ResourceTable.Id_item_ft_tv);
        String name = mDatas.get(i).getName();
        typeTv.setText(name);
        return component;
    }
}